<?php
namespace jy_weishoppension;
defined('BY_JYA') or exit('error');
/*
*/
class member extends \plugin{
	/*
		核对
	*/
	public function check_member(){
		$member=$this->get('member',array('mid'=>$_SESSION['uid']),array('mid'));
		if(!$member){
			$this->model('member')->register();
		}
		return true;
	}
	/*
		会员注册
	*/
	public function register($member=array()){
		if(!$member['uniacid']){
			$member['uniacid']=$_SESSION['uniacid'];
		}
		if(!$member['mid']){
			$member['mid']=$_SESSION['uid'];
		}
		if(!$member['createtime']){
			$member['createtime']=TIMESTAMP;
		}
		if(!$member['mid']){
			return error('养老金会员注册失败，缺少会员ID！');
		}
		$ismid=$this->get('member',array('mid'=>$member['mid']),array('mid'));
		if($ismid){
			return false;
		}
		$member['code']=get_ordersn($this->tablename('member'),'code');
		$this->insert('member',$member);
	}
	/*
		禁用代理商
	*/
	public function stop_agent($agent_id){
		$this->update('member',array('stop'=>1),array('mid'=>$agent_id));
	}
	/*
		恢复代理商
	*/
	public function start_agent($agent_id){
		$this->update('member',array('stop'=>0),array('mid'=>$agent_id));
	}

	/*
		升级分销商等级
		先检测会员身份是否为正常分销商
		然后获取分销商当前等级的下一等级升级条件
		然后逐个条件对比，看是否满足升级条件
		如果全部满足，则升级到相应等级
		
		何时触发升级分销商等级检测呢？
		
	*/
	public function update_agent_level($agent_id){
		//
		$agent=$this->get('agent_area',array('id'=>$agent_id));
		if($agent['status']!=1){
			return;
		}
		$member=$this->get('member',array('mid'=>$agent['mid']));
		if($member['stop']){
			return;
		}
		$parameter=array(
			'params'=>array('uniacid'=>$_SESSION['uniacid'],'level >'=>$level['level']),
			'order_by'=>'level asc',
			'limit'=>'1',
		);
		$levels=$this->get_list('level',$parameter);
		$next_level=$levels[0];
		if(!$next_level){
			return;
		}
		$conditions=json_decode($next_level['conditions'],true);
		$level_up_types=$this->model()->current_level_up_types();//获取当前设置的分销商等级升级条件
		if(!$level_up_types){
			return;
		}
		$up=true;
		foreach($level_up_types as $type){
			if($agent[$type]<$conditions[$type]){
				$up=false;
				break;
			}
		}
		if($up){
			$update=array(
				'level_id'=>$next_level['id'],
			);
			$this->update('agent_area',$update,array('id'=>$agent_id));
		}
		return true;
	}
}